package cn.juque.common.abstracts;

/**
 * @author juque
 * @version 1.0.0
 * <ul>
 *     <li>AbstractCache</li>
 * </ul>
 * @date 2023-02-18 10:36:36
 **/
public abstract class AbstractCache<T> {

    /**
     * 刷新缓存
     */
    public abstract void refresh();

    /**
     * 获取缓存
     * @param key 键值
     * @param deepCopy 深拷贝，false=直接返回缓存对象
     * @return T value
     */
    public abstract T get(String key, Boolean deepCopy);

    /**
     * 添加缓存
     * @param key 键值
     * @param object value
     */
    public abstract void put(String key, T object);

    /**
     * 移除缓存
     * @param key 键值
     */
    public abstract void remove(String key);
}
